package com.projeto.bola.web.participante;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.classic.Session;

import com.projeto.bola.web.agendaPartida.AgendaPartida;
import com.projeto.bola.web.usuario.Usuario;

public class ParticipantesPartidaDAOHibernate implements ParticipantesPartidaDAO{
	
	private Session sessao;

	public Session getSessao() {
		return sessao;
	}

	public void setSessao(Session sessao) {
		this.sessao = sessao;
	}

	@Override
	public void salvarParticipantePartida(
			ParticipantesPartida participantePartida) {
		this.sessao.merge(participantePartida);
		
	}

	@Override
	public Boolean buscarParticipantePartida(Usuario usuario,
			AgendaPartida partidaSelecionada) {
		String sql = "from ParticipantesPartida where id_agenda_partida = :idPartida and id_usuario = :idUsuario";
		Query consulta = sessao.createQuery(sql);
		consulta.setInteger("idUsuario", usuario.getId());
		consulta.setInteger("idPartida", partidaSelecionada.getId());
		
		if (consulta.list().size() == 1) {
			return true;
		}else {
			return false;
		}
	}

	@Override
	public void alterarParticipantePartida(
			ParticipantesPartida participantePartida) {
		this.sessao.merge(participantePartida);
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<ParticipantesPartida> listarParticipantesPartidaConfirmado(
			AgendaPartida partidaSelecionada) {
		String sql = "from ParticipantesPartida where id_agenda_partida = :idPartida and confirma_presenca = true";
		Query consulta = sessao.createQuery(sql);		
		consulta.setInteger("idPartida", partidaSelecionada.getId());
		return consulta.list();
	}
}
